iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0

前言

我們在前一篇文章中,提到 S3 Bucket 架設靜態網站,就兩種做法。

  • 如果桶子裡放靜態網頁,直接對外接收網頁請求,那就必須關掉 BPA (Block Public Access)。:
    Client <--> S3 Bucket
  • 或者是根據最佳實踐原則,用 CDN 夾在中間:
    Client <--> CDN <--> S3 Bucket

關掉 BPA 會怎麼樣?

  • 如果你確定桶裡面只放單純的靜態網頁,也確認只做單純的事情,那就關吧!
    • Static Website 本來就要 讓任何人 GET Object
    • Bucket Policy 通常會寫成「只允許 s3:GetObject」。

缺點 / 潛在風險

  1. 人為錯誤風險提高
    • 只要 BPA 關掉,之後誰都可以寫一個 更寬鬆的 Bucket Policy (新方法) 或 ACL (舊方法建議慢慢棄用)
      • s3:* Principal: * 這種寬鬆 Bucket Policy,那 S3 不會再幫你擋。
    • 意外把 s3:PutObjects3:DeleteObject 開放給匿名使用者
      • 不小心造成「誰都能覆蓋 / 刪掉網站檔案」
  2. 合規 / 安全掃描會報警告
    • 很多資安工具(AWS Security Hub、Trusted Advisor、外部稽核)會看到「S3 BPA 關掉 + Public Bucket Policy」,就會亮紅燈。
    • 即使這是你刻意設的「public website」,審計人員或 SOC 會認為是弱點,需要額外解釋。
  3. 沒使用 CDN 的壞處
    • HTTPS(S3 website endpoint 只能 http,沒有 https)
    • WAF / 防火牆規則(不能擋惡意請求)
    • 快取與加速(全球訪客可能速度慢)
    • 防盜鏈(不能限制 Referer / 簽名 URL)
  4. 容易被爬蟲掃描
    • 雖然只是公開網頁檔案,但安全掃描器(Shodan、GreyNoise)會自動把 Public S3 bucket 列入可見清單。
    • 雖然檔案內容沒什麼機密,但你的 Bucket 名稱 和 結構 會被知道(可能帶來額外攻擊面)。

結論

  • 使用 CDN 可以改善使用者體驗。
  • 不過依照經驗,用量低的時候會有比較貴一點點的傳輸費單價。
  • 月用量超過 10TB 傳出,開始打折,會變便宜。

上一篇
【Day 8】 實作 / 上傳頁面
系列文
無法成為片師也想拍 Vlog?!個人影音小工具的誕生!9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言